import 'package:flutter/material.dart';
import 'package:flutter_give/utils/LogUtils.dart';
import 'package:oktoast/oktoast.dart';
import 'package:rapid_kit/rapid_kit.dart';

import '../../repository/api.dart';
import '../../utils/snack_tips.dart';

/// 弹窗方法
/// 格式-取消-确定-输入框
class DialogInputFactory {
  static final DialogInputFactory instancess = DialogInputFactory._internal();

  factory DialogInputFactory() {
    return instancess;
  }

  DialogInputFactory._internal();

  // 修改设备名称
  Future<void> showInputDialog(BuildContext context, String id, String name,String ID,
      {Function(bool success, String message)? onComplete}) async {
    String inputValue = name ?? ''; // 如果 name 不为空，则赋值给 inputValue

    LogUtils.e(name);
    LogUtils.e(id);

    return showDialog(
      context: context,
      builder: (BuildContext context) {
        return AlertDialog(
          title: Text('修改设备名称'),
          content: TextField(
            onChanged: (value) {
              inputValue = value;
            },
            decoration: InputDecoration(
              hintText: '例如：大门口',
            ),
            controller:
                TextEditingController(text: name), // 将 name 赋值给 TextField 的初始值
          ),
          actions: <Widget>[
            TextButton(
              child: Text('取消'),
              onPressed: () {
                Navigator.of(context).pop();
                if (onComplete != null) {
                  onComplete(false, "操作已取消");
                }
              },
            ),
            TextButton(
              child: Text('确定'),
              onPressed: () async {
                // 打印输入框的值
                if (inputValue == null || inputValue.isEmpty) {
                  showToast("请输入新名称");
                } else {
                  // print('输入的值: $inputValue');
                  // final response =
                  //     await SpecService.rename(id, "${inputValue}");
                  // if (!context.mounted) return;
                  //
                  // if (!response.success) {
                  //   SnackTips.show(context, "Error: ${response.message}");
                  //   if (onComplete != null) {
                  //     onComplete(false, "Error: ${response.message}");
                  //   }
                  // } else {
                  //   SnackTips.show(context, "重命名成功");
                  //   Navigator.of(context).pop();
                  //   if (onComplete != null) {
                  //     inputValue = "";
                  //     onComplete(true, "重命名成功");
                  //   }
                  // }

                  bool swticheq = await Api.instance.eqsavetitle(id: id,name: inputValue);

                  if (swticheq) {
                    // SnackTips.show(context, "重命名成功");
                    showToast("重命名成功");
                    Navigator.of(context).pop();
                    if (onComplete != null) {
                      inputValue = "";
                      onComplete(true, "重命名成功");
                    }
                  }

                }
              },
            ),
          ],
        );
      },
    );
  }

  // 修改用户昵称
  // 修改方法，接受一个 id 参数和一个回调函数，并返回一个 Future<void>
  Future<void> showuserDialog(BuildContext context, String name,
      {Function(bool success, String message, String name)? onComplete}) async {
    String inputValue = name ?? ''; // 如果 name 不为空，则赋值给 inputValue

    LogUtils.e(name);

    return showDialog(
      context: context,
      builder: (BuildContext context) {
        return AlertDialog(
          title: Text('修改用户昵称'),
          content: TextField(
            onChanged: (value) {
              inputValue = value;
            },
            decoration: InputDecoration(
              hintText: '请输入',
            ),
            controller:
                TextEditingController(text: name), // 将 name 赋值给 TextField 的初始值
          ),
          actions: <Widget>[
            TextButton(
              child: Text('取消'),
              onPressed: () {
                Navigator.of(context).pop();
                if (onComplete != null) {
                  onComplete(false, "操作已取消", inputValue);
                }
              },
            ),
            TextButton(
                child: Text('确定'),
                onPressed: () async {
                  // 打印输入框的值
                  if (inputValue == null || inputValue.isEmpty) {
                    showToast("请输入昵称");
                  } else {
                    LogUtils.w("执行 $name");
                    onComplete!(true, "操作已取消", inputValue);
                    Navigator.of(context).pop();
                  }
                }),
          ],
        );
      },
    );
  }

  // 设备分享界面
  // 修改方法，接受一个 id 参数和一个回调函数，并返回一个 Future<void>
  Future<void> showshareDialog(BuildContext context, String ID,
      {Function(bool success, String message)? onComplete}) async {
    String inputValue = ''; // 如果 name 不为空，则赋值给 inputValue

    return showDialog(
      context: context,
      builder: (BuildContext context) {
        return AlertDialog(
          title: Text('输入分享账号'),
          content: TextField(
            onChanged: (value) {
              inputValue = value;
            },
            decoration: InputDecoration(
              hintText: '请输入手机号',
            ),
            controller: TextEditingController(
                text: inputValue), // 将 name 赋值给 TextField 的初始值
          ),
          actions: <Widget>[
            TextButton(
              child: Text('取消'),
              onPressed: () {
                Navigator.of(context).pop();
                if (onComplete != null) {
                  onComplete(false, "操作已取消");
                }
              },
            ),
            TextButton(
              child: Text('确定'),
              onPressed: () async {
                // 打印输入框的值
                if (inputValue == null || inputValue.isEmpty) {
                  showToast("请输入手机号");
                } else {
                  print('输入的值: $inputValue');
                  bool swtich = await Api.instance.getsaveshare(ID: ID, username: inputValue);
                  if (swtich) {
                    if (onComplete != null) {
                      Navigator.of(context).pop();
                      onComplete(true, "分享成功");
                    }
                  }
                }
              },
            ),
          ],
        );
      },
    );
  }
}
